11.  objekt orientierte programmierung

11.6  vererbung

Es ist möglich, methoden und eigenschaften von einer klasse an eine andere klasse zu vererben, d.h. weiter zu geben. Die vererbende klasse bezeichnet man dann als basisklasse, die klasse, die erbt ist eine abgeleitete klasse.

class Basis
{    eigenschaften
     methoden
}

class Erbe extends Basis
{    eigenschaften
     methoden
}

zugriff zu eigenschaften
In der klasse Erbe können eigenschaften der klasse Basis verwendet werden, allerdings müssen sie dort den typ protected haben. Umgekehrt gilt das gleiche. Natürlich könnte man in beiden fällen die eigenschaften auch als public deklarieren, aber ohne zwingende notwendigkeit macht man eigenschaften nicht überall verfügbar.

aufruf von methoden
In der klasse Erbe können methoden der klasse Basis wie folgt aufgerufen werden:

Basis::methode( [ parameter ] )

parent::methode( [ parameter ] )<(p>

Die zweite art des aufrufs wird empfohlen. In der klasse Basis können keine methoden der klasse Erbe aufgerufen werden. Von außerhalb der klassen können die methoden beider klassen wie gewohnt aufgerufen werden.

Erzeugen von objekten
Soll ein objekt eigenschaften beider klassen enthalten, muß man es in der klasse Erbe mit dem konstruktor erzeugen und dann den konstruktor der klasse Basis aufrufen (vgl. beispiel). Soll ein objekt nur eigenschaften einer der beiden klassen enthalten, erzeugt man es wie gewohnt.

beispiel
Es sind zwei klassen definiert, die basisklasse Person mit den eigenschaften einer person und die abgeleitete klasse Ansch mit der anschrift. Es werden drei objekte der klasse Ansch erzeugt. Dabei sollten eigentlich werte für alle eigenschaften übergeben werden (fall1). Werden gar keine werte (fall2) oder nur die werte für die anschrift (fall3) übergeben, werden default-werte verwendet. Der konstruktor von Ansch ruft den konstruktor von Person auf, um die eigenschaften name und vorname zu versorgen. Dann werden die drei objekte mit der methode zeigen (klasse Ansch) angezeigt. Die methode ruft die methode anzeigen (klasse Person) auf. Mit fall4 wird ein objekt der klasse Person erzeugt, das nur mit der methode anzeigen der klasse Person angezeigt werden kann. Bei dem objekt fall1 werden mit der methode aendern (klasse Ansch) eigenschaften geändert, dabei wird auch die methode change (klasse Person) aufgerufen, um ggf. die eigenschaft name oder vorname zu ändern. Bei fall3 werden nur die eigenschaften name und vorname geändert, dazu wird nur die methode change der klasse Person aufgerufen. Die geänderten objekte werden angezeigt, jetzt aber mit der methode extra der klasse Ansch. Diese methode benötigt nicht die methode anzeigen (klasse Person). Die eigenschaft vorname, die den typ protected hat, wird direkt angesprochen und die eigenschaft name wird mit der methode holnam (klasse Person) geholt. Der methode extra wird nämlich als parameter eine referenz übergeben, die an die methode holnam weitergereicht wird, die dann das gewünschte ergebnis liefert, ein wenig umständlich, aber es soll gezeigt werden, was man so alles machen kann.

beispiel6   beispiel starten


zum untermenü


    IMPRESSUM  

    KONTAKT  

    PRIVAT  

    D O K U  


  H T M L  
  C S S  
  p h p
  My S Q L  
  JAVASCRIPT